﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLKS
{
    public partial class fCapNhatLoaiPhong : Form
    {

        public fCapNhatLoaiPhong()
        {
            InitializeComponent();
            _timer.Tick += new EventHandler(timer_Tick);
            _timer.Interval = 1000;
            _timer.Enabled = true;
            _timer.Start();
        }

        Timer _timer = new Timer();//cập nhật trạng thái đăng nhập của người dùng
        private bool _ktdangnhap;//biến tạm kiểm tra trạng thái đăng nhập

        /// <summary>
        /// Kiểm tra người dùng đăng nhập chưa, nếu đăng nhập rồi thì cho phép thao tác, nếu chưa thì không cho phép thao tác
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fCapNhatLoaiPhong_Load(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap == true) //người dùng đã đăng nhập thì cho phép thực hiện các truy vấn
            {
                rbthem.Enabled = true;
                rbsua.Enabled = true;
                rbxoa.Enabled = true;
                tbloaiphong.Enabled = true;
                tbdongia.Enabled = true;
                lbloaiphong.Enabled = true;
                lbdongia.Enabled = true;
                btthem.Enabled = true;
                rbthem.Checked = true;
                btxoa.Hide();
                btsua.Hide();
                _ktdangnhap = MainForm.ktdangnhap;
            }
            else //ngược lại không cho thực hiện các truy vấn
            {
                rbthem.Enabled = false;
                rbsua.Enabled = false;
                rbxoa.Enabled = false;
                tbloaiphong.Enabled = false;
                tbdongia.Enabled = false;
                lbloaiphong.Enabled = false;
                lbdongia.Enabled = false;
                btthem.Enabled = false;
                btsua.Enabled = false;
                btxoa.Enabled = false;
                _ktdangnhap = MainForm.ktdangnhap;
            }
        }

        /// <summary>
        /// Form thực hiện chức năng thêm
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbthemloaiphong_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "";
            tbloaiphong.Enabled = true;
            tbloaiphong.Clear();
            tbdongia.Enabled = true;
            tbdongia.Clear();
            btthem.Show();
            btthem.Enabled = true;
            btxoa.Hide();
            btxoa.Enabled = false;
            btsua.Hide();
            btsua.Enabled = false;
        }

        /// <summary>
        /// Form thực hiện chức năng xóa
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbxoaloaiphong_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "";
            tbloaiphong.Enabled = true;
            tbloaiphong.Clear();
            tbdongia.Enabled = false;
            tbdongia.Clear();
            btthem.Hide();
            btthem.Enabled = false;
            btxoa.Show();
            btxoa.Enabled = true;
            btsua.Hide();
            btsua.Enabled = false;
        }

        /// <summary>
        /// Form thực hiện chức năng sửa
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbsualoaiphong_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "";
            tbloaiphong.Enabled = true;
            tbloaiphong.Clear();
            tbdongia.Enabled = true;
            tbdongia.Clear();
            btthem.Hide();
            btthem.Enabled = false;
            btxoa.Hide();
            btxoa.Enabled = false;
            btsua.Show();
            btsua.Enabled = true;
        }

        /// <summary>
        /// Kiểm tra sự hợp lệ của loại phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbloaiphong_TextChanged(object sender, EventArgs e)
        {
            XuLyCapNhatLoaiPhong xllp = new XuLyCapNhatLoaiPhong();
            if (rbthem.Checked == true)
            {
                label1.Text = xllp.KiemTraLoaiPhong_Them(tbloaiphong.Text);
            }
            else if (rbxoa.Checked == true || rbsua.Checked == true)
            {
                label1.Text = xllp.KiemTraLoaiPhong_XoaSua(tbloaiphong.Text);
            }
        }

        /// <summary>
        /// Không nhận ký tự là chữ, nhận ký tự là số
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbdongia_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        /// <summary>
        /// Cập nhật thông tin thêm phòng trong CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btthem_Click(object sender, EventArgs e)
        {
            XuLyCapNhatLoaiPhong xltlp = new XuLyCapNhatLoaiPhong();
            if (xltlp.ThemLoaiPhong(tbloaiphong.Text, tbdongia.Text) == false)
            {
                MessageBox.Show("Thêm loại phòng thất bại");
            }
            else
            {
                MessageBox.Show("Thêm loại phòng thành công");
            }
            fCapNhatLoaiPhong_Load(sender, e);
            rbthem.Checked = true;
        }

        /// <summary>
        /// Cập nhật thông tin xóa phòng trong CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btxoa_Click(object sender, EventArgs e)
        {
            XuLyCapNhatLoaiPhong xlxlp = new XuLyCapNhatLoaiPhong();
            if (xlxlp.XoaLoaiPhong(tbloaiphong.Text) == false)
            {
                MessageBox.Show("Xóa loại phòng thất bại");
            }
            else
            {
                MessageBox.Show("Xóa loại phòng thành công");
            }
            fCapNhatLoaiPhong_Load(sender, e);
            rbxoa.Checked = true;
        }

        /// <summary>
        /// Cập nhật thông tin sửa phòng trong CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btsua_Click(object sender, EventArgs e)
        {
            XuLyCapNhatLoaiPhong xlslp = new XuLyCapNhatLoaiPhong();
            if (xlslp.SuaLoaiPhong(tbloaiphong.Text, tbdongia.Text) == false)
            {
                MessageBox.Show("Sửa loại phòng thất bại");
            }
            else
            {
                MessageBox.Show("Sửa loại phòng thành công");
            }
            fCapNhatLoaiPhong_Load(sender, e);
            rbsua.Checked = true;
        }

        /// <summary>
        /// Đóng form Cập nhật loại phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bthuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        /// <summary>
        /// Cập nhật tình trạng đăng nhập của người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer_Tick(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap != _ktdangnhap)
            {
                fCapNhatLoaiPhong_Load(sender, e);
            }
        }

        /// <summary>
        /// Thực hiện chức năng tương ứng đang chọn
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fCapNhatLoaiPhong_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter && rbthem.Checked == true)
                btthem.PerformClick();
            else if (e.KeyCode == Keys.Enter && rbxoa.Checked == true)
                btxoa.PerformClick();
            else if (e.KeyCode == Keys.Enter && rbsua.Checked == true)
                btsua.PerformClick();
        }
    }
}
